07. C++ - 静态类型语言

Python 是动态的,C++ 是静态的

静态类型 vs 动态类型

从表面看,Python 和 C++ 有很多共同之处。例如,你可以看到,if 语句、for 循环以及基本的数学表达都非常相似。

但从深层次看,Python 和 C++ 有本质上的不同。其中一个主要区别在于,C++是 静态类型 的,而 Python 则是 动态类型 的。

看一下这段 Python 代码:

vehicle_doors = 4
vehicle_speed = 3.0
vehicle_acceleration = 1.5
vehicle_on = True
vehicle_gear = 'D'
vehicle_dors = vehicle_doors + 1

Python 自动认定 vehicle_doors 是一个整数,vehicle_speed 是一个浮点数,vehicle_on是一个布尔变量。变量赋值是 动态的 。在 Python 中,你无需指定变量的值的类型。

你有没有注意到,"vehicle_doors" 拼写错了,写成了 "vehicle_dors"?这是一段合法的 Python 代码,不会报错。

在 C++ 中,上面的代码是无效的。在赋值前,你需要申明变量类型。因此,C++ 是一种 静态类型 语言。下面是这段代码的 C++ 版本:

int vehicle_doors;
float vehicle_speed;
float vehicle_acceleration;
char vehicle_gear;
bool vehicle_on;

vehicle_doors = 4;
vehicle_speed = 3.0;
vehicle_acceleration = 1.5;
vehicle_gear = 'D';
vehicle_on = True;

vehicle_doors = vehicle_doors + 1;

如果你输入: vehicle_dors = vehicle_doors + 1; ,则会报错。因为 vehicle_dors 这个变量没有定义。

在静态类型语言中声明变量

在这次小测验中,你需要使用 C++ 编写整数的变量声明。完整阅读下面的代码,然后填充 TODO 部分:

Start Quiz:

// include all libraries needed
#include <iostream>

/* 	
*	These are C++ comments. There are two ways to write comments in C++.
*	Using the slash with an asterisk is one way.
*/ 

// Here is another way to write comments in C++

/* In general, C++ code is run from a file called main.cpp
* The implementation goes into a function called main().
* The main() function almost always returns a zero, which provides evidence that 
* the program ran to its end.
*/

// define main function
int main() {
    
    int integer_one;
    integer_one = 5;
    
    // TODO: Define a variable called integer_two and assign a value of 9.
    
    // TODO: Calculate the sum of integer_one and integer_two 
    // and assign the result to integer_sum
    int integer_sum;
    
    // outputs the results to standard out
    std::cout << integer_sum;
    
    return 0;
}

变量赋值: Python vs C++

要是测验考的是 Python 而不是 C++ 呢?请记住,Python 是动态类型语言,而 C++ 是静态类型的。在 Python 中,Python 会在赋值时自动判断你想使用哪种类型的变量。但在 C++ 编程时,你需要在赋值前声明变量类型。

C++ 小窍门

在 C++ 小测验中,你可能写了这样的语句:

int integer_two;
integer_two = 9;

你还可以使用下列代码定义一个变量并赋值:

int integer_two = 9;